< previous page page_82 next page >

Page 82
/*
 * Caller's buffer is too small.%0
 */
#define ERROR_BUFFER_INVALID                 (RASBASE+10)
/*
 * The buffer is invalid.%0
 */

#define ERROR_INVALID_SIZE                   (RASBASE+32)
/*
 * The structure size is incorrect.%0
 */
"Structure size incorrect? How can the structure size be incorrect?" I couldn't see it.
"I feel the same way." She frowned. "The dwSize parameter is 4 bytes and the string is 257 bytes, exactly as shown in the C declaration. That's 261 bytesexactly what the RasEntrySize variable contains. How can the structure size be incorrect?"
I looked over the ras.h header file. The only thing that was slightly suspicious was the include statement at the top of the file:
#include <pshpack4.h>

Abstract:

This file turns 4-byte packing of structures on.
(That is, it disables automatic alignment of structure fields.)
An include file is needed because various compilers do this in different ways. For
Microsoft-compatible compilers, this file uses the push option to the pack pragma
so that the poppack.h include file can restore the previous packing reliably.
So structures in this file use 4-byte packing instead of the usual 1-byte packing. DT and I looked at each other and reached for our juices, which had been brought to our table while we were working. We took a deep drink, then exchanged a look of shock as a sudden dizziness struck us both. Could it be poison?
EDITOR'S NOTE At this point the narrative ends. If DT's computer is going to make a call, it looks like it's going to be up to you. Be sure you have at least two entries in your dialup networking phone book before working on the problem.

 
< previous page page_82 next page >